Color data generated by current graphics processors output for display is conventionally represented in a nonlinear color format, such as a device independent color format. Additionally color data stored as texture maps is represented in a nonlinear format. A standard device independent color format, such as sRGB, is designed for use with display devices and image capture devices.
Although color data is conventionally represented in a nonlinear format for display, processing of color data is conventionally performed in linear color space. Therefore, processed color data is typically converted to a nonlinear color format prior to output. Performing color conversion using a shader program executed by a graphics processor requires additional computational steps, sometimes resulting in additional passes through a shader pipeline. Therefore, the performance of the graphics processor may degrade when color data is converted from a linear color space to a nonlinear color space.
Accordingly, it is desirable to have a graphics processor that can optionally convert color data represented in one color space to color data represented in another color space prior to storing the color data in a frame buffer without suffering a loss in performance.